package pers.cj.pdos.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import pers.cj.pdos.entity.PayWait;
import pers.cj.pdos.vo.PayWaitVo;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author chenj
 * @since 2020-01-19
 */
public interface PayWaitMapper extends BaseMapper<PayWait> {
    List<Map> listVo(@Param("companyId") String companyId,
                     @Param("page") Integer page,
                     @Param("limit") Integer limit,
                     @Param("storeId") String storeId,
                     @Param("providerTypeId") String providerTypeId,
                     @Param("notNeedPay") Boolean notNeedPay,
                     @Param("providerNoStop") Boolean providerNoStop,
                     @Param("search") String search);
    Long count(@Param("companyId") String companyId,
               @Param("storeId") String storeId,
               @Param("providerTypeId") String providerTypeId,
               @Param("notNeedPay") Boolean notNeedPay,
               @Param("providerNoStop") Boolean providerNoStop,
               @Param("search") String search);
    PayWaitVo getVoByProvider(@Param("providerId")String providerId);


    /**
     * 获取供应商的欠款明细
     * @param providerId
     * @param page
     * @param limit
     * @param search
     * @param no
     * @param userId
     * @param date1
     * @param date2
     * @param flag
     * @param storeId
     * @return
     */
    List<Map> listDetail(@Param("providerId") String providerId,
                         @Param("page") Integer page,
                         @Param("limit") Integer limit,
                         @Param("close") Boolean close,
                         @Param("search") String search,
                         @Param("no") String no,
                         @Param("remark") String remark,
                         @Param("userId") String userId,
                         @Param("date1") Date date1,
                         @Param("date2") Date date2,
                         @Param("flag") Integer flag,
                         @Param("storeId") String storeId);

    /**
     * 获取供应商欠款明细个数
     * @param providerId
     * @param search
     * @param no
     * @param userId
     * @param date1
     * @param date2
     * @param flag
     * @param storeId
     * @return
     */
    Long countDetail(@Param("providerId") String providerId,
                     @Param("close") Boolean close,
                     @Param("search") String search,
                     @Param("no") String no,
                     @Param("remark") String remark,
                     @Param("userId") String userId,
                     @Param("date1") Date date1,
                     @Param("date2") Date date2,
                     @Param("flag") Integer flag,
                     @Param("storeId") String storeId);


    /**
     * 获取总欠款
     * @param companyId
     * @return
     */
    BigDecimal getTotalAmount(@Param("companyId") String companyId);
}
